#pragma once
#include "BaseWindow.hpp"
#include <list>
// Meyers' Singleton
class WindowManager
{
public:
    WindowManager(const WindowManager&) = delete;
    WindowManager& operator=(const WindowManager&) = delete;
    static WindowManager& getInstance()
    {
        static WindowManager instance;
        return instance;
    }
    void addWindow(BaseWindow* const window);
    void removeWindow(BaseWindow* const window);
    bool loadWindow();
private:
    WindowManager() = default;
    ~WindowManager() { };
    std::list<BaseWindow *> show_list;
    std::list<BaseWindow *> remove_list;
};